package ruanjian2101.utils;
import java.sql.*;
/**/

public class JDBCutils {
    private static Connection con;
    private static PreparedStatement ps;
    private static ResultSet rs;

    public static  Connection getCon() {
        return con;
    }

    //    连接数据库
    //静态代码块高于其他优先级
    //静态代码块：在程序执行的时候，会优先加载到内存，并且只执行一次
    /*使用jdbc数据库方法
    * 1.导报
    * 2.注册和加载驱动
    * 3.获取数据库连接对象
    *4.定义一个sql语句
    *5.童工数据库连接对象 Connection con 获取数据库执行语句
    *
    *
    * */

    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/mysql";
            String user = "root";
            String password = "root";
            con= DriverManager.getConnection(url,user,password);
        } catch (Exception e) {
            throw new RuntimeException(e + "连接数据库失败");
        }
    }

    //增删改方法
    public static int excuteUpdate(String sql,Object[] obj){
        int result=-1;
        try {
            ps=con.prepareStatement(sql);
            for (int i = 0; i < obj.length; i++) {
                ps.setObject(i+1,obj[i]);
            }
            result=ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return result;
    }
    //查询全部
    public static ResultSet executeQuery(String sql){
        try {
            ps=con.prepareStatement(sql);
            rs=ps.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return rs;
    }
    //查询单条数据
    public static ResultSet excuteQuery(String sql,String sth){
        try {
            ps=con.prepareStatement(sql);
            ps.setObject(1,sth);
            rs=ps.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return rs;
    }

    //关闭,节约资源
    public static void close(){
        try {
            if (con!=null){
                con.close();
            }
            if (ps!=null){
                ps.close();
            }
            if (rs!=null){
                rs.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}